package com.car.customer.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

@TableName(value = "sys_car_customer")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysCarCustomer implements Serializable {
    /**
     * 客户记录唯一标识 ID，自增整数类型，作为主键
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 客户头像的路径或 URL
     */
    @TableField(value = "customer_avatar")
    private String customerAvatar;

    /**
     * 客户姓名
     */
    @TableField(value = "customer_name")
    private String customerName;

    /**
     * 客户出生日期
     */
    @TableField(value = "birth_date")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date birthDate;

    /**
     * 客户性别，可取值如“男”“女”等
     */
    @TableField(value = "gender")
    private String gender;

    /**
     * 省份的外键 ID
     */
    @TableField(value = "province_id")
    private Integer provinceId;

    /**
     * 城市的外键 ID
     */
    @TableField(value = "city_id")
    private Integer cityId;

    /**
     * 区/县的外键 ID
     */
    @TableField(value = "district_id")
    private Integer districtId;

    /**
     * 客户登录密码
     */
    @TableField(value = "login_password")
    private String loginPassword;

    /**
     * 客户邮箱地址
     */
    @TableField(value = "email")
    private String email;

    /**
     * 客户记录创建时间
     */
    @TableField(value = "create_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date createTime;

    /**
     * 创建该客户记录的人员
     */
    @TableField(value = "created_by")
    private String createdBy;

    /**
     * 客户记录最后更新时间
     */
    @TableField(value = "update_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date updateTime;

    /**
     * 最后更新该客户记录的人员
     */
    @TableField(value = "updated_by")
    private String updatedBy;

    /**
     * 备用字段，可用于记录一些特殊情况或备注信息
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 不存在于数据库表中的字段，可能用于临时存储一些代码相关的值
     */
    @TableField(exist = false)
    private String code;

    /**
     * 不存在于数据库表中的字段，可能用于临时存储一些唯一标识相关的值
     */
    @TableField(exist = false)
    private String uid;

    private static final long serialVersionUID = 1L;
}